/* eslint-disable import/prefer-default-export */
import request from '@/utils/request';

/**
 * 员工管理 查询员工列表-分页
 */
export async function employeeList() {
    const param = { pageNo: 1, pageSize: 10 };
    return request('/api/uc/org/employee/v1/queryEmployeeDetailPageInfo', {
        data: param,
        method: 'POST'
    });
}

/**
 * 员工管理 分页查询员工简要信息
 */
export async function queryEmployeeManagePageInfo(param) {
    return request('/api/uc/org/employee/v1/employeeInfo/queryEmployeeManagePageInfo', {
        data: { pageNo: 1, pageSize: 10, ...param },
        method: 'POST'
    });
}

/**
 * 查看员工详情
 * @param usercode
 */
export async function employeeDetail(param) {
    return request(
        `/api/uc/org/employee/v1/getEmployeeByEmployeeCode?employeeCode=${param.employeeCode}${param.dutyCode ? `&dutyCode=${param.dutyCode}` : ''}`,
        {
            method: 'GET'
        }
    );
}
/**
 * 我的考勤主页接口
 * @param employeeId 员工id
 * @param whichMonth 考勤月
 */
export async function myattendance(param) {
    return request('/api/oa/v1/myattendance/getmain', {
        data: param,
        method: 'POST'
    });
}
/**
 * 根据用户code获取职位列表 [DELETE]
 * @param userCode 员工的用户code
 */
// export async function getEmployeepostlist(param) {
//     return request(`/api/oa/v1/employee/getemployeepostlistbyusercode/${param.userCode}`, {
//         method: 'GET'
//     });
// }
/**
 * 删除员工的配置职位
 * @param id 主键
 * @param userCode
 */
export async function deleteEmployeePost(param) {
    return request('/api/oa/v1/employee/deleteemployeepostbyid', {
        method: 'POST',
        data: param
    });
}
/**
 * 公司部门目录树
 * @param companyId 公司ID
 */
export async function companyGettree(param) {
    return request('/api/uc/org/v1/orgLinkList', {
        method: 'POST',
        data: param // request会自动把params序列化
    });
}
/**
 * 公司部门目录树
 */
export async function orgLinkListAndEmployeeNum(param) {
    return request('/api/uc/org/v1/orgLinkListAndEmployeeNum', {
        method: 'POST',
        data: param
    });
}
/**
 * 查看部门详情
 * @param {string} departmentId
 */
export async function departmentGetone(param) {
    return request(`/api/oa/v1/department/getone/${param.departmentId}`, {
        method: 'GET'
    });
}
/**
 * 添加或修改部门
 * @param {number} id 主键：部门id
 * @param {number}  companyId 公司id
 * @param {string} departmentName 部门名称
 * @param {number} parentId 父级部门id
 */
export async function departmentUpdate(param) {
    return request('/api/oa/v1/department/saveorupdate', {
        method: 'POST',
        data: param
    });
}
/**
 *删除部门
 * @param {string} departmentId
 */
export async function departmentDelete(param) {
    return request(`/api/oa/v1/department/delete/${param.departmentId}`, {
        method: 'POST'
    });
}
/**
 * 添加/
 */
export async function saveorupdate(param) {
    return request('/api/oa/v1/employee/saveorupdate', {
        method: 'POST',
        data: param
    });
}
/**
 * HR确认个人信息/组织架构更新员工
 */
export async function update(param) {
    return request('/api/oa/v1/employee/update', {
        method: 'POST',
        data: param
    });
}
/**
 * 批量禁用/解禁员工
 * @param {string[]} userCodeList
 * @param status 0 禁用 1启用
 */
export async function updateUserStatus(param) {
    return request('/api/oa/v1/employee/updateuserstatus', {
        method: 'POST',
        data: param
    });
}
/**
 * 重置密码
 * @param {string} loginName 登录账号
 * @param {string} name 用户名称
 * @param {string} organizeType 组织类型 1：OA 2:商户
 */

export async function accountForget(param) {
    return request('/api/user/v1/account/reset', {
        method: 'POST',
        data: param
    });
}

/**
 * 员工导出接口
 */
export async function employeeexport(params) {
    // 连接LYH 本机 调试文件下载
    return request('/api/oa/v1/employeeexport/getlist', {
        method: 'POST',
        data: params,
        getResponse: true,
        encryption: false,
        isFile: true,
        responseType: 'blob',
        headers: { 'Content-Type': 'application/json' }
    });
}

/**
 * 模糊查询机构下员工
 */
export async function fetchEmployee(param) {
    return request('/api/org/v1/employeeInfo/queryAllEmployeeTypeDetailInfoList', {
        method: 'POST',
        data: param
    });
}
